﻿# -*-coding:utf-8 -*-
import socket, traceback, os, sys, time, struct
TMP_IP               = '192.168.1.218'
TMP_PORT             = 6900

def cmdSend(aCmd):
    try:
        s = socket.socket()
        s.connect((TMP_IP,TMP_PORT))
        s.sendall(aCmd)
        recv = s.recv(1024)
        s.close()
        return recv
    except socket.gaierror, e:
        print e
    except socket.error, e:
        print e
        
    return ''

def cmdSplit(aName,aStr):
    if aStr == "<{true}[||]>" or aStr == "<{false}>":
        return -1
    tmpRet =aStr.split("|")[1]
    return tmpRet
	
    
#更新交易历史信息 :设备id
# 成功                账户余额
# 传入参数为空         返回 -1
#不存在此设备编号     返回 -2
#不存在此卡           返回 -3
#不存在交易中的订单   返回 -4

def dbSelectDevUpdate(aMsn,aMac,aValue) :
    tmpCmd = "<msg><cmd class='select' conname='' clientid='' istran=''><body>select F_YLW_YLW_MY_CARD_UPDATE('" + aMsn + "','" + aMac + "'," + aValue + ")</body></cmd></msg>"
    tmpRet = cmdSend(tmpCmd)
    print tmpRet
    tmpRet = cmdSplit("dbSelectstart",tmpRet)
    return tmpRet
    
    
    
#根据 获取单个设备的信息 :设备id
#返回值           成功             设备的信息
#                传入参数为空      返回 -1
#                不存在此设备编号   返回 -2

def dbSelectDevInfo(aMac) :
    tmpCmd = "<msg><cmd class='select' conname='' clientid='' istran=''><body>select F_YLW_MY_CARD_GET_DEVINFO('" + aMac + "')</body></cmd></msg>"
    tmpRet = cmdSend(tmpCmd)
    print tmpRet
    tmpRet = cmdSplit("dbSelectstart",tmpRet)
    arr = tmpRet.split("&v;")
    tmp_posid   = arr[0]  #设备四位id
    tmp_dname   = arr[1]  #设备名称
    tmp_mac     = arr[2]  #mac地址，暂时存放设备编号
    tmp_psecond = arr[3]  #每秒单价
    tmp_ptone   = arr[4]  #每吨单价
    tmp_ptype   = arr[5]  #支付类型 0计时1计量2智能
    tmp_stime   = arr[6]  #开始延时（秒）
    tmp_etime   = arr[7]  #结束延时（秒）
    tmp_mharge  = arr[8]  #最低消费（元）
    tmp_lon     = arr[9]  #经度
    tmp_lat     = arr[10] #维度
    print tmp_posid,tmp_dname,tmp_mac,tmp_psecond,tmp_ptone,tmp_ptype,tmp_stime,tmp_etime,tmp_mharge,tmp_lon,tmp_lat
    return tmpRet
    
#开始加水传入：msn,mac,value,停止方式
#停止方式：0=刷卡停/1=超级用户停/2=定额/3=定时/4=定量/5不足、6=o/7=c
#成功返回       返回0
#传入参数为空   返回-1
#不存在此设备   返回-2
#数据库没有此卡 返回-3
#不存在未完成订单   -4

def dbSelectStop(aMsn,aMac,aValue,aSWay) :
    tmpCmd = "<msg><cmd class='select' conname='' clientid='' istran=''><body>select F_YLW_YLW_MY_CARD_STOP_WATER('" + aMsn + "','" + aMac + "'," + aValue + "," + aSWay+")</body></cmd></msg>"
    tmpRet = cmdSend(tmpCmd)
    print tmpRet
    tmpRet = cmdSplit("dbSelectstart",tmpRet)
    return tmpRet    
    
#开始加水传入：msn,mac,value
#成功返回       返回0
#传入参数为空   返回-1
#数据库没有此卡 返回-2
#不存在此设备   返回-3
def dbSelectstart(aMsn,aMac,aValue) :
    tmpCmd = "<msg><cmd class='select' conname='' clientid='' istran=''><body>select F_YLW_YLW_MY_CARD_START_WATER('" + aMsn + "','" + aMac + "'," + aValue + ")</body></cmd></msg>"
    tmpRet = cmdSend(tmpCmd)
    print tmpRet
    tmpRet = cmdSplit("dbSelectstart",tmpRet)
    return tmpRet

    
    
if __name__ == '__main__':
    print ''
    #print dbSelectDevUpdate('24B5B806','5730303148FF6B067266545327200667','12')
    print dbSelectDevInfo('5730303148FF6B067266545327200667')
    #print dbSelectStop('24B5B806','5730303148FF6B067266545327200667','12','0')
    #print dbSelectstart('24B5B806','5730303148FF6B067266545327200667','12')